<%-- 
    Document   : alterarEspaco
    Created on : 20/10/2011, 22:50:16
    Author     : Maury
--%>

<%@page import="Model.Endereco"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@page import="DAO.EnderecoDAO"%>
<%@page import="DAO.EspacoRecursoDAO"%>
<%@page import="Model.Recurso"%>
<%@page import="DAO.RecursoDAO"%>
<%@page import="Model.TipoEspaco"%>
<%@page import="DAO.TipoEspacoDAO"%>
<%@page import="java.util.ArrayList"%>
<%@page import="java.sql.SQLException"%>
<%@page import="Model.Espaco"%>
<%@page import="DAO.EspacoDAO"%>
<%@page import="Exceptions.PrivilegioInsuficienteException"%>
<%@page import="Model.Usuario"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@include file = "autenticacaoAdministrador.jsp"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Sistema Controle de Reservas</title>
        <script type="text/javascript">
            function mudar(box){
                if(box.checked){
                    document.getElementById("quantidade_" + box.value).style.display = "block";
                    document.getElementById("quantidadeD_" + box.value).style.display = "block";
                }
                else{
                    document.getElementById("quantidade_" + box.value).style.display = "none";
                    document.getElementById("quantidadeD_" + box.value).style.display = "none";
                    
                }
            }
            
            function validar(form){
                var num = form.num.value;
                var cap = form.cap.value;
                document.getElementById("numAlert").innerHTML = "";
                document.getElementById("capacidade").innerHTML = "";
                
                if(num == ""){
                    document.getElementById("numAlert").innerHTML = "Campo Número deve ser preenchido!";
                    form.num.focus();
                    return false;
                }
                num = Number(num);
                if(isNaN(num)){
                    document.getElementById("numAlert").innerHTML = "Número inválido!";
                    form.num.focus();
                    return false;
                }               
                                
                if(cap == ""){
                    document.getElementById("capacidadeAlert").innerHTML = "Campo Capacidade deve ser preenchido!";
                    form.cap.focus();
                    return false;
                }
                cap = Number(cap);
                if(isNaN(cap)){
                    document.getElementById("capacidadeAlert").innerHTML = "Número inválido!";
                    form.cap.focus();
                    return false;
                }
                return true;
            }
        </script>
    </head>
    <body>
        <%
            Espaco espaco = (Espaco) request.getAttribute("espaco");
            if(espaco == null){
                espaco = (Espaco) session.getAttribute("espaco");
                if(espaco == null){
                    throw new NullPointerException("Espaco invalido!");
                }
            }
            session.setAttribute("espaco", espaco);
            
            ArrayList<Endereco> enderecos = (ArrayList) request.getAttribute("enderecos");
            if(enderecos == null){
                enderecos = (ArrayList) session.getAttribute("enderecos");
                if(espaco == null){
                    throw new NullPointerException("Enderecos invalidos!");
                }
            }
            session.setAttribute("enderecos", enderecos);
            
            
            ArrayList<TipoEspaco> tipos = (ArrayList) request.getAttribute("tipos");            
            if(tipos == null){
                tipos = (ArrayList) session.getAttribute("tipos");
                if(tipos == null){
                    throw new NullPointerException("Tipos invalidos!");
                }
            }
            session.setAttribute("tipos", tipos);            
        %>
        <h1>Alterar Espaço:</h1>
        <div id="message">${erro}</div>
        <form name="formEspaco" method="post" action="MainAccessServlet" onsubmit="return validar(this)" accept-charset="iso-8859-1,utf-8">
            <input type="hidden" name="cmd" value="atualizarEspaco"/>
            <input type="hidden" name="id" value="${espaco.id_espaco}"/><br>
            Id do Espaco: ${espaco.id_espaco}<br>
            Número do Espaço: <input type="text" name="num" value="${espaco.num_espaco}"/><br>
            <label id="numAlert"></label><br>
            Capacidade: <input type="text" name="cap" value="${espaco.capacidade}"/><br>
            <label id="capacidadeAlert"></label><br>
            <select name="end">
            <c:forEach var="endereco" items="${enderecos}">
                <c:if test="${espaco.end.id_endereco == endereco.id_endereco}">
                    <option value="${endereco.id_endereco}" SELECTED>${endereco.cidade}, ${endereco.rua} ${endereco.numero}</option>
                </c:if>
                <c:if test="${espaco.end.id_endereco != endereco.id_endereco}">
                    <option value="${endereco.id_endereco}">${endereco.cidade}, ${endereco.rua} ${endereco.numero}</option>
                </c:if>
            </c:forEach>
            </select><br>
            <select name="tipoEspaco">
            <c:forEach var="tipo" items="${tipos}">
                <c:if test="${tipo.id == espaco.tipo.id}">
                    <option value="${tipo.id}" SELECTED>${tipo.nome}</option>
                </c:if>
                <c:if test="${tipo.id != espaco.tipo.id}">
                    <option value="${tipo.id}">${tipo.nome}</option>
                </c:if>
            </c:forEach>
            </select>
            Descrição: <input type="text" name="descricao" value="${espaco.descricao}"/><br>
            Recursos: <br>            
            <table border="1">
            <tr>
                <th>Id do Recurso</th>
                <th>Nome do Recurso</th>
                <th>Quantidade</th>
                <th>Acrescentar</th>
                <th>Quantidade a Acrescentar</th>
                <th>Quantidade a Diminuir</th>
                <th>Quantidade Atual na Sala</th>
            </tr>
            <%
                ArrayList<Recurso> recursos = (ArrayList) request.getAttribute("recursos");
                if(recursos == null){
                    recursos = (ArrayList) session.getAttribute("recursos");
                    if(recursos == null){
                        throw new NullPointerException("Recursos invalidos!");
                    }
                }
                session.setAttribute("recursos", recursos);
                
                for(Recurso r : recursos){
                    out.println("<tr>");
                    out.println("   <td>" + r.getId_recurso() + "</td>");
                    out.println("   <td>" + r.getNome_recurso() + "</td>");
                    if(r.getQuantidade_disponivel() != -1){
                        out.println("   <td>" + r.getQuantidade_disponivel() +"</td>");
                    }
                    else{
                        out.println("   <td> Recurso não quantitativo!</td>");
                    }
                    
                    out.println("   <td><input type=\"checkbox\" name=\"recurso\" value=\"" +
                            r.getNome_recurso() + "\" onchange=\"mudar(this)\"/></td>");
                    
                    if(r.getQuantidade_disponivel() != -1){
                        out.println("   <td><input type=\"text\" id=\"quantidade_" +
                                r.getNome_recurso() + "\" name=\"quantidade_" +
                                r.getNome_recurso() + "\" style=\"display:none;\"/></td>");
                    }
                    else{
                        out.println("   <td> Recurso não quantitativo!</td>");
                    }
                    if(r.getQuantidade_disponivel() != -1){
                        out.println("   <td><input type=\"text\" id=\"quantidadeD_" +
                                r.getNome_recurso() + "\" name=\"quantidadeD_" +
                                r.getNome_recurso() + "\" style=\"display:none;\"/></td>");
                    }
                    else{
                        out.println("   <td> Recurso não quantitativo!</td>");
                    }
                    
                    int index = espaco.getRecursos().indexOf(r);
                    if(index != -1){
                        if(espaco.getRecursos().get(index).getQuantidade_disponivel() != -1){
                            out.println("   <td>" + espaco.getRecursos().get(index).getQuantidade_disponivel() + "</td>");
                        }
                        else{
                            out.println("   <td> Recurso encontrado! </td>");
                        }
                    }
                    else{
                        out.println("   <td> Espaço não contém o recurso! </td>");
                    }
                    out.println("<tr>");
                }
            %>
            </table><br>
            <input type="submit" value="Registrar"/><input type="reset" value="Limpar"/>
            <button type="button" onclick="location.href='menuAdministrador.jsp'">Voltar</button><br>
        </form>
    </body>
</html>
